Industrial control systems used to control and monitor industrial processes often employ programmable logic controllers (PLCs). PLCs are special purpose computers that operate based upon stored control programs and typically read inputs and provide outputs to the controlled industrial processes based upon the logic of their controller programs. The processing power and memory capabilities of PLCs have rapidly grown in recent years.
PLCs differ from conventional computers in two major respects. First, PLCs operate to produce highly reliable and predictable control outputs. The architecture and programming of PLCs are designed so as to provide predictable maximum response times, as well as a reduction in errors caused by race conditions and sensitive detection of hardware and communication errors. Second, PLCs also differ from conventional computers in that PLCs are highly customizable so as to fit the demands of the particular industrial processes being controlled.
In some instances, it is desirable for users to be able to program or modify controller programs of the PLCs of the industrial control systems by way of remote human machine interfaces. Conventional industrial control systems allow for communications between the PLCs and remote human machine interfaces such as computer terminals by way of proprietary communication links or dedicated phone lines. Typically, to allow for such communications, the remote users are provided with proprietary software for installation on the remote terminals. The proprietary software is specialized both in that it allows for programming of the controller programs, and in that it allows for appropriate communications in accordance with the proprietary format.
Although such proprietary software provides the remote user with the capability of remotely accessing an industrial control system and effecting changes to the controller programs employed in the control system, the use of such software has several drawbacks. First, the software typically requires significant memory and processing power for its installation and operation at a remote terminal. Additionally, the software must be delivered to (or otherwise obtained by) and installed by the user of the remote terminal.
Further, it is often the case that the software must be updated from time to time, such that the user must repeatedly obtain and install new software. As updates to the software are made over time, care must be exercised by the remote user so that the proper versions of the software are used in association with the controller programs. In particular, this is the case where the controller programs have different versions that were created using different versions of the software.
Therefore, it would be advantageous if a new industrial control system was developed that allowed for communications between the industrial control system and remote devices, particularly to allow for the remote programming and modifying of controller programs, without the separate, physical provision of proprietary software for installation at the remote terminals. It would also be advantageous if the industrial control system was designed to communicate with remote terminals in such a manner that it was not necessary for the remote terminals to have large amounts of processing power and/or memory. It would further be advantageous if updates in the programming software employed to create controller programs and version changes in the controller programs were automatically accounted for in the operation of the remote terminals. It would additionally be advantageous if the remote terminals could be employed to create or modify the controller programs of a variety of different control devices of the industrial control system, including PLCs.